package packa;

import java.util.Scanner;

public class Test04 {
    public static void main(String[] args)
    {
        Scanner input=new Scanner(System.in);
        System.out.println("Windows 系统已启动！");
        String[] pros={"记事本","计算器","浏览器"};
        try
        {
            //循环输出pros数组中的元素
            for(int i=0;i<pros.length;i++)
            {
                System.out.println(i+1+"："+pros[i]);
            }
            System.out.println("是否运行程序：");
            String answer=input.next();
            if(answer.equals("y"))
            {
                System.out.println("请输入程序编号：");
                int no=input.nextInt();
                System.out.println("正在运行程序["+pros[no-1]+"]");
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            System.out.println("谢谢使用!");
        }
    }

}
/**
 * 如果 try 代码块中没有拋出异常，则执行完 try 代码块之后直接执行 finally 代码块，然后执行 try catch finally 语句块之后的语句。
 * 如果 try 代码块中拋出异常，并被 catch 子句捕捉，那么在拋出异常的地方终止 try 代码块的执行，转而执行相匹配的 catch 代码块，之后执行 finally 代码块。如果 finally 代码块中没有拋出异常，则继续执行 try catch finally 语句块之后的语句；如果 finally 代码块中拋出异常，则把该异常传递给该方法的调用者。
 * 如果 try 代码块中拋出的异常没有被任何 catch 子句捕捉到，那么将直接执行 finally 代码块中的语句，并把该异常传递给该方法的调用者。
 * 在前面的代码中用 System.exit() 退出运行。如果代码在 try 内部执行一条 System.exit() 语句，则应用程序将终止而不会执行 finally。
 * 如果在执行 finally 块之前，程序所在的线程死亡，finally 块将不被执行。
 */